﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.Collections;

namespace BiffenService.Model
{
    [DataContract]
    public class Booking
    {
        [DataMember]
        public int ID { get; set; }
        [DataMember]
        public States Status { get; set; }
        [DataMember]
        public int PhoneNumber { get; set; }
        [DataMember]
        public Show Show { get; set; }
        [DataMember]
        public List<int> Seats { get; set; }
        [DataMember]
        public Discount Discount { get; set; }
        [DataMember]
        public Member Member { get; set; }
        
        [DataContract]
        public enum States: int
        {
            [EnumMember]
            Reserved = 1,
            [EnumMember]
            Sold = 2,
            [EnumMember]
            Released = 3
        }
       
        /// <summary>
        /// Empty Constructor
        /// </summary>
        public Booking()
        {
        }

        /// <summary>
        /// Constructor for booking which takes parametres
        /// </summary>
        /// <param name="ID">int ID the booking id</param>
        /// <param name="Status">States status the status of the booking (if it is sold, reserved or released)</param>
        /// <param name="PhoneNumber">int PhoneNumber the phonenumber used to reserve the booking</param>
        /// <param name="show">Show show the show which is booked</param>
        /// <param name="seats">List seats a List with all the seats that is reserved</param>
        public Booking(int ID, States Status, int PhoneNumber, Show show, List<int> seats)
        {
            this.ID = ID;
            this.Status = Status;
            this.PhoneNumber = PhoneNumber;
            this.Show = show;
            this.Seats = seats;
        }
    }
}